#ifndef CARTRIDGE_H
#define CARTRIDGE_H
#include "pch.h"
#include <vector>
#include <string>
#include <cstdint>

PNE_NAMESPACE_BEGIN

using Byte = uint8_t;
using Address = uint16_t;

struct Cartridge
{
    Cartridge();
    bool LoadFromFile(std::string path);
    const std::vector<Byte> &GetROM();
    const std::vector<Byte> &GetVROM();
    Byte GetMapper();
    Byte GetNameTableMirroring();
    bool HasExtendedRAM();

private:
    std::vector<Byte> m_PRG_ROM;
    std::vector<Byte> m_CHR_ROM;
    Byte m_nameTableMirroring;
    Byte m_mapperNumber;
    bool m_extendedRAM;
    bool m_chrRAM;
};

PNE_NAMESPACE_END // namespace

#endif // CARTRIDGE_H

    // DONE, CHECKED